1. Field of the Invention
The present invention relates to color management architecture in which plural transformation modules each act to transform color data from an input side to an output side, and particularly relates to use of a phantom profile so as to transfer data from one transformation module to another.
2. Description of the Related Art
Since 1993, the International Color Consortium (HTTP://www.color.org/) has acted to promote a standardized architecture and standardized components for an open, vendor-neutral, cross-platform color management system. A representative architecture using such components is illustrated in FIG. 1. As seen there, an application 10 executing under an operating system has access to a graphics library 11 and an imaging library 12. To perform color management functionality, application 10 accesses a color management framework interface 14, which in turn has access to color profiles 15 and a default color management module 16. Interface 14 also allows access to third party color management modules illustrated diagrammatically at 17 and 18. Profiles 15 provide the color management modules with information necessary to transform color data, such as a conversion between a native device color space and a device independent color space. For each different kind of color device, different algorithmic models are described which perform transformation between the color spaces based on the color information in the color profiles 15. These algorithmic models are realized programmatically within transformation modules of the color management modules, as illustrated below in FIG. 2.
FIG. 2 shows a color management framework in which three transformation modules serially perform color transformation, each between an input side and an output side. The overall result of processing by the three modules illustrated in FIG. 2 might, for example, correspond to a transformation from an input device color space to a device neutral color space (module 1), a gamut mapping so as to ensure that colors properly are within the outputable gamut of an output device (module 2), and a transformation from the gamut-mapped device independent color space into an output color space (module 3). As seen in FIG. 2, a first module 20 derives input from a variety of different sources. For example, in the context of FIG. 2, module 20 derives input information from four different sources. First, input information is passed as a parameter from the color management framework 14 as part of an initial function call that activates module 20. Second, module 20 access data in one of the color profiles 15 which define the color information necessary to convert color data between color spaces. Third, local data 24 is maintained in an area accessible only by the module itself, such as pre-designated data specific to initialization of the module. Fourth, each module can access global data in a global data pool 25.
Recently, color management has focused on the construction of a color management pipeline in which a pipeline script defines transformation modules that apply serially, step-by-step, so as to transform color data from a given input to a target output. Because of a desire to maintain a vendor-neutral, cross-platform color management system, however, the large variety of data sources available to the transformation modules causes difficulties. For example, different platforms and different vendors might pass parameters differently from framework 14 to each individual module. And, each individual module might store data differently in global data area 25, in dependence on the vendor who wrote the module and the platform on which the module is executing. Particularly in situations where a color management pipeline is used, because the global data area 25 is the primary source of transferring data between the different modules, such a situation can lead to difficulties in data transfer and can yield unexpected and unintended color management results.